<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>

<script>
  // 英文：
  // temp - 临时
  /* 
  变量 的作用： 存储数据。
*/

  // 声明语句的拆解：
  // 作用1： 在计算机中，声明了一个 变量 `num`
  // 作用2： 将 数据 `123`，赋值给 变量 `num`
  var num = 123; // 声明语句

  var num2 = 456; // 声明语句

  // 计算机 现在 一共声明了 两个变量： num， num2
  // console.log(num3); // 会报： num3 not defined 的错误！！！

  //
  // num = 9999; // 作用：将 数据 `9999` 赋值给了 变量 `num`
  // console.log(num); // 9999

  // --------------

  // 新需求：将 num 和 num2 的数据，交换：
  // 思路：设一个 中间变量（新的变量） - `临时变量 （temp）`：

  var temp = 0; // 临时变量， 其初始值 随意；
  // 临时变量的作用： 为了 将 num 和 num2 的值，进行交换。

  temp = num; // 将 num 赋值给 临时变量 `temp`
  // 思考：现在 num 的值是？？？ ->  123
  // 注：JS 中，赋值的本质是 ”复制“， 而不是 ”剪切“。
  // 复制： ctrl+C, +  ctrl + V，  复制的本质是：原来的数据还在。
  // 剪切： ctrl+X， 剪切的本质是：原来的数据 没有了。
  num = num2; // num 的值变成了：`456`
  num2 = temp; // temp 的值是 `123`，被赋值给了 num2

  console.log(num); // 456
  console.log(num2); // 123
  // console.log(temp); // 123
</script>
